260. Тыквенная каша

 

Надоело Деду, Бабке, Внучке и Жучке выращивать репку, решили они переключиться на новый овощ – тыкву. Хорошее это растение, по земле стелется, в землю не закапывается, а, следовательно, не надо его из земли всем вместе вытаскивать!

Стало быть, посадил дед тыкву. И выросло из одного семечка тыкв видимо-невидимо, но не более 1000 штук. Обрадовался дед, похвастался всем: и Бабке, и Внучке, и Жучке. Решили они варить тыквенную кашу по три раза на дню, а может и чаще. Стали думать, в каком порядке тыквы съедать. Решили, что каждый раз на очередную кашу будут выбирать самую тяжелую тыкву. А поскольку на каждую кашу требуется ровно столько пшена, сколько весит тыква, Бабке срочно требуется график, в соответствии с которым ей придется покупать пшено. Ваша задача – напечатать ей такой график.

 

Вход. В первой строке записано число n (0 ≤ n ≤ 1000) – количество тыкв в дедовом огороде. Далее следуют n целых чисел – вес каждой тыквы в каратах. Тыквы выросли большие, но все-таки вес каждой тыквы не превышает 100000 карат.

 

Выход. Вывести вес каждой тыквы в том порядке, в котором они попадут в бабкину кашу.

 

Пример входа

Пример выхода

2 1 2

2 1

 

 

РЕШЕНИЕ

сортировка

 

Анализ алгоритма

В задаче следует отсортировать числа по убыванию.

 

Реализация алгоритма

Объявим рабочий массив.

 

int m[1010];

 

Читаем входные данные.

 

scanf("%d",&n);

for(i = 0; i < n; i++)

  scanf("%d",&m[i]);

 

Сортируем числа при помощи встроенного компаратора greater.

 

sort(m,m+n,greater<int>());

 

Выводим отсортированный массив.

 

for(i = 0; i < n; i++)

  printf("%d ",m[i]);

printf("\n");

 

Реализация алгоритма – собственная функция сортировки

 

#include <cstdio>

#include <algorithm>

using namespace std;

 

int i, n;

int m[1010];

 

int f(int a, int b)

{

  return a > b;

}

 

int main(void)

{

  scanf("%d",&n);

  for(i = 0; i < n; i++)

    scanf("%d",&m[i]);

 

  sort(m,m+n,f);

 

  for(i = 0; i < n; i++)

    printf("%d ",m[i]);

  printf("\n");

  return 0;

}

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static class MyFun implements Comparator<Integer>

  {

    public int compare(Integer a, Integer b)

    {

      return b - a;

    }

  }

 

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    Integer m[] = new Integer[n];

    for(int i = 0; i < n; i++)

      m[i] = con.nextInt();

 

    Arrays.sort(m, new MyFun());

   

    for(int i = 0; i < n; i++)

      System.out.print(m[i] + " ");

    con.close();

  }

}